\section*{Further Work}
Because SDRPHY is a standard used to describe a vast number of features and capabilities of communications devices, creating general waveforms to encompass all possible radio functionality is difficult. As of right now, our work is able to implement a small subset of the possible waveform configurations described by the SDRPHY standard. Future work in this area could include writing waveforms that can integrate cryptography, spreading codes, arbitrary encoding methods, CDMA/TDMA/FDMA, and frequency hopping. This would include creating many new components to implement these functionalities. Ideally, these components would be implemented in a way that they could be used in a variety of SDR platforms. Then, our cognitive engine and SDR waveform could be upgraded to allow for these other SDRPHY features.
Our cognitive engine uses a binary search algorithm to maximize utility. Future work could allow for maximizing algorithms with faster convergence and possibly give a user the option of which algorithm to use. This could be implemented in several ways. To use the Service Management Layer (SML) of CROSS it would be better to create several CEs whose adpatation algorithms are different, then use the SML to determine which engine to use. In this way the SML could be used to implement meta-cognition.
Instead of completely re-writing the SDRPHY XML file each cycle, our application could be modified so that only the changed section of the XML file would be read by the interpreter. Right now our code implements a simulation of a wireless communication network. Developers could take our code and modify it to allow the data to be sent wirelessly between two USRPs. In order to do this, the general GNU Radio and OSSIE waveforms would need to be modified to include USRP sinks. Data synchronization would also be necessary for a wireless implementation. Using three USRP devices, it would be possible to set up a jamming simulation to test our cognitive engine against a potential malicious user.  